#pragma once

#include "surface.h"
#include "../basics/basics.h"
#include "primitives.h"

// =================================================================================================
// Flat surface that uses a plane as it's surface
// =================================================================================================
class FlatSurface : public Surface {
    protected:

        Plane plane;
        
    public:

        // -- default constructor
        FlatSurface();

        // -- lifetime
        FlatSurface(const Color& col, const Plane& plane);

        // -- inherited public method
        virtual float SurfaceIntersection(const Ray& ray);
};

// =================================================================================================
// Constructors
// =================================================================================================
inline FlatSurface::FlatSurface() : Surface(), plane() {
}

inline FlatSurface::FlatSurface(const Color& col, const Plane& plane_) : Surface(col), plane(plane_) {
} 


